TSTP Solution File: ALG255^1 by Satallax---3.5

View Problem - Process Solution

%------------------------------------------------------------------------------
% File     : Satallax---3.5
% Problem  : ALG255^1 : TPTP v8.1.0. Bugfixed v5.2.0.
% Transfm  : none
% Format   : tptp:raw
% Command  : satallax -E eprover-ho -P picomus -M modes -p tstp -t %d %s

% Computer : n029.cluster.edu
% Model    : x86_64 x86_64
% CPU      : Intel(R) Xeon(R) CPU E5-2620 v4 2.10GHz
% Memory   : 8042.1875MB
% OS       : Linux 3.10.0-693.el7.x86_64
% CPULimit : 300s
% WCLimit  : 600s
% DateTime : Thu Jul 14 17:57:46 EDT 2022

% Result   : Theorem 0.18s 0.45s
% Output   : Proof 0.18s
% Verified : 
% SZS Type : ERROR: Analysing output (MakeTreeStats fails)

% Comments : 
%------------------------------------------------------------------------------
thf(ty_subst,type,
    subst: $tType ).

thf(ty_term,type,
    term: $tType ).

thf(ty_push,type,
    push: term > subst > subst ).

thf(ty_ap,type,
    ap: term > term > term ).

thf(ty_id,type,
    id: subst ).

thf(ty_one,type,
    one: term ).

thf(ty_sub,type,
    sub: term > subst > term ).

thf(ty_lam,type,
    lam: term > term ).

thf(ty_sh,type,
    sh: subst ).

thf(ty_var,type,
    var: term > $o ).

thf(ty_comp,type,
    comp: subst > subst > subst ).

thf(sP1,plain,
    ( sP1
  <=> ( ! [X1: term] :
          ~ ( var @ ( lam @ X1 ) )
     => ( ! [X1: term > $o] :
            ( ! [X2: term] :
                ( ( var @ X2 )
               => ( X1 @ X2 ) )
           => ( ! [X2: term,X3: term] :
                  ( ( X1 @ X2 )
                 => ( ( X1 @ X3 )
                   => ( X1 @ ( ap @ X2 @ X3 ) ) ) )
             => ( ! [X2: term] :
                    ( ( X1 @ X2 )
                   => ( X1 @ ( lam @ X2 ) ) )
               => ( !! @ X1 ) ) ) )
       => ( ! [X1: term > $o,X2: term,X3: subst] :
              ( ! [X4: term] :
                  ( ( var @ X4 )
                 => ( X1 @ ( sub @ X4 @ X3 ) ) )
             => ( ( X1 @ X2 )
               => ! [X4: term] :
                    ( ( var @ X4 )
                   => ( X1 @ ( sub @ X4 @ ( push @ X2 @ X3 ) ) ) ) ) )
         => ( ! [X1: term > $o] :
                ( ! [X2: term,X3: term] :
                    ( ( X1 @ X2 )
                   => ( ( X1 @ X3 )
                     => ( X1 @ ( ap @ X2 @ X3 ) ) ) )
               => ( ! [X2: term] :
                      ( ! [X3: term] :
                          ( ( X1 @ X3 )
                         => ( X1 @ ( sub @ X2 @ ( push @ X3 @ id ) ) ) )
                     => ( X1 @ ( lam @ X2 ) ) )
                 => ! [X2: term,X3: subst] :
                      ( ! [X4: term] :
                          ( ( var @ X4 )
                         => ( X1 @ ( sub @ X4 @ X3 ) ) )
                     => ( X1 @ ( sub @ X2 @ X3 ) ) ) ) )
           => ( ! [X1: term > $o] :
                  ( ! [X2: term] :
                      ( ( var @ X2 )
                     => ( X1 @ X2 ) )
                 => ( ! [X2: term,X3: term] :
                        ( ( X1 @ X2 )
                       => ( ( X1 @ X3 )
                         => ( X1 @ ( ap @ X2 @ X3 ) ) ) )
                   => ( ! [X2: term] :
                          ( ! [X3: term] :
                              ( ( X1 @ X3 )
                             => ( X1 @ ( sub @ X2 @ ( push @ X3 @ id ) ) ) )
                         => ( X1 @ ( lam @ X2 ) ) )
                     => ( !! @ X1 ) ) ) )
             => ( ~ ( ~ ( ! [X1: subst,X2: subst,X3: subst] :
                            ( ( comp @ ( comp @ X1 @ X2 ) @ X3 )
                            = ( comp @ X1 @ ( comp @ X2 @ X3 ) ) )
                       => ~ ! [X1: subst] :
                              ( ( comp @ id @ X1 )
                              = X1 ) )
                   => ~ ! [X1: subst] :
                          ( ( comp @ X1 @ id )
                          = X1 ) )
               => ~ ( ! [X1: term,X2: subst,X3: subst] :
                        ( ( sub @ ( sub @ X1 @ X2 ) @ X3 )
                        = ( sub @ X1 @ ( comp @ X2 @ X3 ) ) )
                   => ~ ! [X1: term] :
                          ( ( sub @ X1 @ id )
                          = X1 ) ) ) ) ) ) ) ) ),
    introduced(definition,[new_symbols(definition,[sP1])]) ).

thf(sP2,plain,
    ( sP2
  <=> ( ! [X1: term > $o] :
          ( ( X1 @ one )
         => ( ! [X2: term] :
                ( ( var @ X2 )
               => ( ( X1 @ X2 )
                 => ( X1 @ ( sub @ X2 @ sh ) ) ) )
           => ! [X2: term] :
                ( ( var @ X2 )
               => ( X1 @ X2 ) ) ) )
     => ( ! [X1: term,X2: term,X3: term,X4: term] :
            ( ( ( ap @ X1 @ X3 )
              = ( ap @ X2 @ X4 ) )
           => ( X1 = X2 ) )
       => ( ! [X1: term,X2: term,X3: term,X4: term] :
              ( ( ( ap @ X1 @ X3 )
                = ( ap @ X2 @ X4 ) )
             => ( X3 = X4 ) )
         => ( ! [X1: term,X2: term] :
                ( ( ( lam @ X1 )
                  = ( lam @ X2 ) )
               => ( X1 = X2 ) )
           => ( ! [X1: term,X2: term] :
                  ( ( ( sub @ X1 @ sh )
                    = ( sub @ X2 @ sh ) )
                 => ( X1 = X2 ) )
             => ( ! [X1: term,X2: term,X3: term] :
                    ( ( lam @ X1 )
                   != ( ap @ X2 @ X3 ) )
               => ( ! [X1: term,X2: term] :
                      ~ ( var @ ( ap @ X1 @ X2 ) )
                 => sP1 ) ) ) ) ) ) ) ),
    introduced(definition,[new_symbols(definition,[sP2])]) ).

thf(sP3,plain,
    ( sP3
  <=> ( ! [X1: term,X2: term] :
          ( ( ( lam @ X1 )
            = ( lam @ X2 ) )
         => ( X1 = X2 ) )
     => ( ! [X1: term,X2: term] :
            ( ( ( sub @ X1 @ sh )
              = ( sub @ X2 @ sh ) )
           => ( X1 = X2 ) )
       => ( ! [X1: term,X2: term,X3: term] :
              ( ( lam @ X1 )
             != ( ap @ X2 @ X3 ) )
         => ( ! [X1: term,X2: term] :
                ~ ( var @ ( ap @ X1 @ X2 ) )
           => sP1 ) ) ) ) ),
    introduced(definition,[new_symbols(definition,[sP3])]) ).

thf(sP4,plain,
    ( sP4
  <=> ( ! [X1: term,X2: subst] :
          ( ( sub @ ( lam @ X1 ) @ X2 )
          = ( lam @ ( sub @ X1 @ ( push @ one @ ( comp @ X2 @ sh ) ) ) ) )
     => ( ! [X1: term,X2: subst,X3: subst] :
            ( ( sub @ ( sub @ X1 @ X2 ) @ X3 )
            = ( sub @ X1 @ ( comp @ X2 @ X3 ) ) )
       => ( ! [X1: subst] :
              ( ( comp @ id @ X1 )
              = X1 )
         => ( ! [X1: term,X2: subst] :
                ( ( comp @ sh @ ( push @ X1 @ X2 ) )
                = X2 )
           => ( ! [X1: subst,X2: subst,X3: subst] :
                  ( ( comp @ ( comp @ X1 @ X2 ) @ X3 )
                  = ( comp @ X1 @ ( comp @ X2 @ X3 ) ) )
             => ( ! [X1: term,X2: subst,X3: subst] :
                    ( ( comp @ ( push @ X1 @ X2 ) @ X3 )
                    = ( push @ ( sub @ X1 @ X3 ) @ ( comp @ X2 @ X3 ) ) )
               => ( ! [X1: subst] :
                      ( ( comp @ X1 @ id )
                      = X1 )
                 => ( ( ( push @ one @ sh )
                      = id )
                   => ( ! [X1: subst] :
                          ( ( push @ ( sub @ one @ X1 ) @ ( comp @ sh @ X1 ) )
                          = X1 )
                     => ( ( var @ one )
                       => ( ! [X1: term] :
                              ( ( var @ X1 )
                             => ( var @ ( sub @ X1 @ sh ) ) )
                         => sP2 ) ) ) ) ) ) ) ) ) ) ) ),
    introduced(definition,[new_symbols(definition,[sP4])]) ).

thf(sP5,plain,
    ( sP5
  <=> ( ! [X1: term,X2: term,X3: term] :
          ( ( lam @ X1 )
         != ( ap @ X2 @ X3 ) )
     => ( ! [X1: term,X2: term] :
            ~ ( var @ ( ap @ X1 @ X2 ) )
       => sP1 ) ) ),
    introduced(definition,[new_symbols(definition,[sP5])]) ).

thf(sP6,plain,
    ( sP6
  <=> ! [X1: term,X2: subst,X3: subst] :
        ( ( sub @ ( sub @ X1 @ X2 ) @ X3 )
        = ( sub @ X1 @ ( comp @ X2 @ X3 ) ) ) ),
    introduced(definition,[new_symbols(definition,[sP6])]) ).

thf(sP7,plain,
    ( sP7
  <=> ( ! [X1: term,X2: term] :
          ~ ( var @ ( ap @ X1 @ X2 ) )
     => sP1 ) ),
    introduced(definition,[new_symbols(definition,[sP7])]) ).

thf(sP8,plain,
    ( sP8
  <=> ( ! [X1: term,X2: term,X3: term,X4: term] :
          ( ( ( ap @ X1 @ X3 )
            = ( ap @ X2 @ X4 ) )
         => ( X3 = X4 ) )
     => sP3 ) ),
    introduced(definition,[new_symbols(definition,[sP8])]) ).

thf(sP9,plain,
    ( sP9
  <=> ( ! [X1: term,X2: term] :
          ( ( ( sub @ X1 @ sh )
            = ( sub @ X2 @ sh ) )
         => ( X1 = X2 ) )
     => sP5 ) ),
    introduced(definition,[new_symbols(definition,[sP9])]) ).

thf(sP10,plain,
    ( sP10
  <=> ( ! [X1: term] :
          ( ( sub @ X1 @ id )
          = X1 )
     => sP4 ) ),
    introduced(definition,[new_symbols(definition,[sP10])]) ).

thf(sP11,plain,
    ( sP11
  <=> ( ! [X1: term > $o,X2: term,X3: subst] :
          ( ! [X4: term] :
              ( ( var @ X4 )
             => ( X1 @ ( sub @ X4 @ X3 ) ) )
         => ( ( X1 @ X2 )
           => ! [X4: term] :
                ( ( var @ X4 )
               => ( X1 @ ( sub @ X4 @ ( push @ X2 @ X3 ) ) ) ) ) )
     => ( ! [X1: term > $o] :
            ( ! [X2: term,X3: term] :
                ( ( X1 @ X2 )
               => ( ( X1 @ X3 )
                 => ( X1 @ ( ap @ X2 @ X3 ) ) ) )
           => ( ! [X2: term] :
                  ( ! [X3: term] :
                      ( ( X1 @ X3 )
                     => ( X1 @ ( sub @ X2 @ ( push @ X3 @ id ) ) ) )
                 => ( X1 @ ( lam @ X2 ) ) )
             => ! [X2: term,X3: subst] :
                  ( ! [X4: term] :
                      ( ( var @ X4 )
                     => ( X1 @ ( sub @ X4 @ X3 ) ) )
                 => ( X1 @ ( sub @ X2 @ X3 ) ) ) ) )
       => ( ! [X1: term > $o] :
              ( ! [X2: term] :
                  ( ( var @ X2 )
                 => ( X1 @ X2 ) )
             => ( ! [X2: term,X3: term] :
                    ( ( X1 @ X2 )
                   => ( ( X1 @ X3 )
                     => ( X1 @ ( ap @ X2 @ X3 ) ) ) )
               => ( ! [X2: term] :
                      ( ! [X3: term] :
                          ( ( X1 @ X3 )
                         => ( X1 @ ( sub @ X2 @ ( push @ X3 @ id ) ) ) )
                     => ( X1 @ ( lam @ X2 ) ) )
                 => ( !! @ X1 ) ) ) )
         => ( ~ ( ~ ( ! [X1: subst,X2: subst,X3: subst] :
                        ( ( comp @ ( comp @ X1 @ X2 ) @ X3 )
                        = ( comp @ X1 @ ( comp @ X2 @ X3 ) ) )
                   => ~ ! [X1: subst] :
                          ( ( comp @ id @ X1 )
                          = X1 ) )
               => ~ ! [X1: subst] :
                      ( ( comp @ X1 @ id )
                      = X1 ) )
           => ~ ( sP6
               => ~ ! [X1: term] :
                      ( ( sub @ X1 @ id )
                      = X1 ) ) ) ) ) ) ),
    introduced(definition,[new_symbols(definition,[sP11])]) ).

thf(sP12,plain,
    ( sP12
  <=> ( ~ ( ~ ( ! [X1: subst,X2: subst,X3: subst] :
                  ( ( comp @ ( comp @ X1 @ X2 ) @ X3 )
                  = ( comp @ X1 @ ( comp @ X2 @ X3 ) ) )
             => ~ ! [X1: subst] :
                    ( ( comp @ id @ X1 )
                    = X1 ) )
         => ~ ! [X1: subst] :
                ( ( comp @ X1 @ id )
                = X1 ) )
     => ~ ( sP6
         => ~ ! [X1: term] :
                ( ( sub @ X1 @ id )
                = X1 ) ) ) ),
    introduced(definition,[new_symbols(definition,[sP12])]) ).

thf(sP13,plain,
    ( sP13
  <=> ( ! [X1: term] :
          ( ( var @ X1 )
         => ( var @ ( sub @ X1 @ sh ) ) )
     => sP2 ) ),
    introduced(definition,[new_symbols(definition,[sP13])]) ).

thf(sP14,plain,
    ( sP14
  <=> ! [X1: term] :
        ( ( sub @ X1 @ id )
        = X1 ) ),
    introduced(definition,[new_symbols(definition,[sP14])]) ).

thf(sP15,plain,
    ( sP15
  <=> ( sP6
     => ~ sP14 ) ),
    introduced(definition,[new_symbols(definition,[sP15])]) ).

thf(sP16,plain,
    ( sP16
  <=> ( ! [X1: term,X2: subst,X3: subst] :
          ( ( comp @ ( push @ X1 @ X2 ) @ X3 )
          = ( push @ ( sub @ X1 @ X3 ) @ ( comp @ X2 @ X3 ) ) )
     => ( ! [X1: subst] :
            ( ( comp @ X1 @ id )
            = X1 )
       => ( ( ( push @ one @ sh )
            = id )
         => ( ! [X1: subst] :
                ( ( push @ ( sub @ one @ X1 ) @ ( comp @ sh @ X1 ) )
                = X1 )
           => ( ( var @ one )
             => sP13 ) ) ) ) ) ),
    introduced(definition,[new_symbols(definition,[sP16])]) ).

thf(sP17,plain,
    ( sP17
  <=> ( ! [X1: subst] :
          ( ( comp @ X1 @ id )
          = X1 )
     => ( ( ( push @ one @ sh )
          = id )
       => ( ! [X1: subst] :
              ( ( push @ ( sub @ one @ X1 ) @ ( comp @ sh @ X1 ) )
              = X1 )
         => ( ( var @ one )
           => sP13 ) ) ) ) ),
    introduced(definition,[new_symbols(definition,[sP17])]) ).

thf(sP18,plain,
    ( sP18
  <=> ( ! [X1: term > $o] :
          ( ! [X2: term] :
              ( ( var @ X2 )
             => ( X1 @ X2 ) )
         => ( ! [X2: term,X3: term] :
                ( ( X1 @ X2 )
               => ( ( X1 @ X3 )
                 => ( X1 @ ( ap @ X2 @ X3 ) ) ) )
           => ( ! [X2: term] :
                  ( ! [X3: term] :
                      ( ( X1 @ X3 )
                     => ( X1 @ ( sub @ X2 @ ( push @ X3 @ id ) ) ) )
                 => ( X1 @ ( lam @ X2 ) ) )
             => ( !! @ X1 ) ) ) )
     => sP12 ) ),
    introduced(definition,[new_symbols(definition,[sP18])]) ).

thf(sP19,plain,
    ( sP19
  <=> ( ! [X1: term,X2: subst] :
          ( ( comp @ sh @ ( push @ X1 @ X2 ) )
          = X2 )
     => ( ! [X1: subst,X2: subst,X3: subst] :
            ( ( comp @ ( comp @ X1 @ X2 ) @ X3 )
            = ( comp @ X1 @ ( comp @ X2 @ X3 ) ) )
       => sP16 ) ) ),
    introduced(definition,[new_symbols(definition,[sP19])]) ).

thf(sP20,plain,
    ( sP20
  <=> ( sP6
     => ( ! [X1: subst] :
            ( ( comp @ id @ X1 )
            = X1 )
       => sP19 ) ) ),
    introduced(definition,[new_symbols(definition,[sP20])]) ).

thf(sP21,plain,
    ( sP21
  <=> ( ! [X1: subst] :
          ( ( comp @ id @ X1 )
          = X1 )
     => sP19 ) ),
    introduced(definition,[new_symbols(definition,[sP21])]) ).

thf(sP22,plain,
    ( sP22
  <=> ( ( ( push @ one @ sh )
        = id )
     => ( ! [X1: subst] :
            ( ( push @ ( sub @ one @ X1 ) @ ( comp @ sh @ X1 ) )
            = X1 )
       => ( ( var @ one )
         => sP13 ) ) ) ),
    introduced(definition,[new_symbols(definition,[sP22])]) ).

thf(sP23,plain,
    ( sP23
  <=> ( ! [X1: term,X2: subst] :
          ( ( sub @ one @ ( push @ X1 @ X2 ) )
          = X1 )
     => sP10 ) ),
    introduced(definition,[new_symbols(definition,[sP23])]) ).

thf(sP24,plain,
    ( sP24
  <=> ( ! [X1: subst] :
          ( ( push @ ( sub @ one @ X1 ) @ ( comp @ sh @ X1 ) )
          = X1 )
     => ( ( var @ one )
       => sP13 ) ) ),
    introduced(definition,[new_symbols(definition,[sP24])]) ).

thf(sP25,plain,
    ( sP25
  <=> ( ! [X1: term,X2: term,X3: subst] :
          ( ( sub @ ( ap @ X1 @ X2 ) @ X3 )
          = ( ap @ ( sub @ X1 @ X3 ) @ ( sub @ X2 @ X3 ) ) )
     => sP23 ) ),
    introduced(definition,[new_symbols(definition,[sP25])]) ).

thf(sP26,plain,
    ( sP26
  <=> ( ! [X1: term > $o] :
          ( ! [X2: term] :
              ( ( var @ X2 )
             => ( X1 @ X2 ) )
         => ( ! [X2: term,X3: term] :
                ( ( X1 @ X2 )
               => ( ( X1 @ X3 )
                 => ( X1 @ ( ap @ X2 @ X3 ) ) ) )
           => ( ! [X2: term] :
                  ( ( X1 @ X2 )
                 => ( X1 @ ( lam @ X2 ) ) )
             => ( !! @ X1 ) ) ) )
     => sP11 ) ),
    introduced(definition,[new_symbols(definition,[sP26])]) ).

thf(sP27,plain,
    ( sP27
  <=> ( ! [X1: term,X2: term,X3: term,X4: term] :
          ( ( ( ap @ X1 @ X3 )
            = ( ap @ X2 @ X4 ) )
         => ( X1 = X2 ) )
     => sP8 ) ),
    introduced(definition,[new_symbols(definition,[sP27])]) ).

thf(sP28,plain,
    ( sP28
  <=> ( ! [X1: subst,X2: subst,X3: subst] :
          ( ( comp @ ( comp @ X1 @ X2 ) @ X3 )
          = ( comp @ X1 @ ( comp @ X2 @ X3 ) ) )
     => sP16 ) ),
    introduced(definition,[new_symbols(definition,[sP28])]) ).

thf(sP29,plain,
    ( sP29
  <=> ( ! [X1: term > $o] :
          ( ! [X2: term,X3: term] :
              ( ( X1 @ X2 )
             => ( ( X1 @ X3 )
               => ( X1 @ ( ap @ X2 @ X3 ) ) ) )
         => ( ! [X2: term] :
                ( ! [X3: term] :
                    ( ( X1 @ X3 )
                   => ( X1 @ ( sub @ X2 @ ( push @ X3 @ id ) ) ) )
               => ( X1 @ ( lam @ X2 ) ) )
           => ! [X2: term,X3: subst] :
                ( ! [X4: term] :
                    ( ( var @ X4 )
                   => ( X1 @ ( sub @ X4 @ X3 ) ) )
               => ( X1 @ ( sub @ X2 @ X3 ) ) ) ) )
     => sP18 ) ),
    introduced(definition,[new_symbols(definition,[sP29])]) ).

thf(sP30,plain,
    ( sP30
  <=> ( ( var @ one )
     => sP13 ) ),
    introduced(definition,[new_symbols(definition,[sP30])]) ).

thf(def_axapp,definition,
    ( axapp
    = ( ! [X1: term,X2: term,X3: subst] :
          ( ( sub @ ( ap @ X1 @ X2 ) @ X3 )
          = ( ap @ ( sub @ X1 @ X3 ) @ ( sub @ X2 @ X3 ) ) ) ) ) ).

thf(def_axvarcons,definition,
    ( axvarcons
    = ( ! [X1: term,X2: subst] :
          ( ( sub @ one @ ( push @ X1 @ X2 ) )
          = X1 ) ) ) ).

thf(def_axvarid,definition,
    axvarid = sP14 ).

thf(def_axabs,definition,
    ( axabs
    = ( ! [X1: term,X2: subst] :
          ( ( sub @ ( lam @ X1 ) @ X2 )
          = ( lam @ ( sub @ X1 @ ( push @ one @ ( comp @ X2 @ sh ) ) ) ) ) ) ) ).

thf(def_axclos,definition,
    axclos = sP6 ).

thf(def_axidl,definition,
    ( axidl
    = ( ! [X1: subst] :
          ( ( comp @ id @ X1 )
          = X1 ) ) ) ).

thf(def_axshiftcons,definition,
    ( axshiftcons
    = ( ! [X1: term,X2: subst] :
          ( ( comp @ sh @ ( push @ X1 @ X2 ) )
          = X2 ) ) ) ).

thf(def_axassoc,definition,
    ( axassoc
    = ( ! [X1: subst,X2: subst,X3: subst] :
          ( ( comp @ ( comp @ X1 @ X2 ) @ X3 )
          = ( comp @ X1 @ ( comp @ X2 @ X3 ) ) ) ) ) ).

thf(def_axmap,definition,
    ( axmap
    = ( ! [X1: term,X2: subst,X3: subst] :
          ( ( comp @ ( push @ X1 @ X2 ) @ X3 )
          = ( push @ ( sub @ X1 @ X3 ) @ ( comp @ X2 @ X3 ) ) ) ) ) ).

thf(def_axidr,definition,
    ( axidr
    = ( ! [X1: subst] :
          ( ( comp @ X1 @ id )
          = X1 ) ) ) ).

thf(def_axvarshift,definition,
    ( axvarshift
    = ( ( push @ one @ sh )
      = id ) ) ).

thf(def_axscons,definition,
    ( axscons
    = ( ! [X1: subst] :
          ( ( push @ ( sub @ one @ X1 ) @ ( comp @ sh @ X1 ) )
          = X1 ) ) ) ).

thf(def_ulamvar1,definition,
    ( ulamvar1
    = ( var @ one ) ) ).

thf(def_ulamvarsh,definition,
    ( ulamvarsh
    = ( ! [X1: term] :
          ( ( var @ X1 )
         => ( var @ ( sub @ X1 @ sh ) ) ) ) ) ).

thf(def_ulamvarind,definition,
    ( ulamvarind
    = ( ! [X1: term > $o] :
          ( ( X1 @ one )
         => ( ! [X2: term] :
                ( ( var @ X2 )
               => ( ( X1 @ X2 )
                 => ( X1 @ ( sub @ X2 @ sh ) ) ) )
           => ! [X2: term] :
                ( ( var @ X2 )
               => ( X1 @ X2 ) ) ) ) ) ) ).

thf(def_apinj1,definition,
    ( apinj1
    = ( ! [X1: term,X2: term,X3: term,X4: term] :
          ( ( ( ap @ X1 @ X3 )
            = ( ap @ X2 @ X4 ) )
         => ( X1 = X2 ) ) ) ) ).

thf(def_apinj2,definition,
    ( apinj2
    = ( ! [X1: term,X2: term,X3: term,X4: term] :
          ( ( ( ap @ X1 @ X3 )
            = ( ap @ X2 @ X4 ) )
         => ( X3 = X4 ) ) ) ) ).

thf(def_laminj,definition,
    ( laminj
    = ( ! [X1: term,X2: term] :
          ( ( ( lam @ X1 )
            = ( lam @ X2 ) )
         => ( X1 = X2 ) ) ) ) ).

thf(def_shinj,definition,
    ( shinj
    = ( ! [X1: term,X2: term] :
          ( ( ( sub @ X1 @ sh )
            = ( sub @ X2 @ sh ) )
         => ( X1 = X2 ) ) ) ) ).

thf(def_lamnotap,definition,
    ( lamnotap
    = ( ! [X1: term,X2: term,X3: term] :
          ( ( lam @ X1 )
         != ( ap @ X2 @ X3 ) ) ) ) ).

thf(def_apnotvar,definition,
    ( apnotvar
    = ( ! [X1: term,X2: term] :
          ~ ( var @ ( ap @ X1 @ X2 ) ) ) ) ).

thf(def_lamnotvar,definition,
    ( lamnotvar
    = ( ! [X1: term] :
          ~ ( var @ ( lam @ X1 ) ) ) ) ).

thf(def_induction,definition,
    ( induction
    = ( ! [X1: term > $o] :
          ( ! [X2: term] :
              ( ( var @ X2 )
             => ( X1 @ X2 ) )
         => ( ! [X2: term,X3: term] :
                ( ( X1 @ X2 )
               => ( ( X1 @ X3 )
                 => ( X1 @ ( ap @ X2 @ X3 ) ) ) )
           => ( ! [X2: term] :
                  ( ( X1 @ X2 )
                 => ( X1 @ ( lam @ X2 ) ) )
             => ( !! @ X1 ) ) ) ) ) ) ).

thf(def_pushprop,definition,
    ( pushprop
    = ( ! [X1: term > $o,X2: term,X3: subst] :
          ( ! [X4: term] :
              ( ( var @ X4 )
             => ( X1 @ ( sub @ X4 @ X3 ) ) )
         => ( ( X1 @ X2 )
           => ! [X4: term] :
                ( ( var @ X4 )
               => ( X1 @ ( sub @ X4 @ ( push @ X2 @ X3 ) ) ) ) ) ) ) ) ).

thf(def_induction2lem,definition,
    ( induction2lem
    = ( ! [X1: term > $o] :
          ( ! [X2: term,X3: term] :
              ( ( X1 @ X2 )
             => ( ( X1 @ X3 )
               => ( X1 @ ( ap @ X2 @ X3 ) ) ) )
         => ( ! [X2: term] :
                ( ! [X3: term] :
                    ( ( X1 @ X3 )
                   => ( X1 @ ( sub @ X2 @ ( push @ X3 @ id ) ) ) )
               => ( X1 @ ( lam @ X2 ) ) )
           => ! [X2: term,X3: subst] :
                ( ! [X4: term] :
                    ( ( var @ X4 )
                   => ( X1 @ ( sub @ X4 @ X3 ) ) )
               => ( X1 @ ( sub @ X2 @ X3 ) ) ) ) ) ) ) ).

thf(def_induction2,definition,
    ( induction2
    = ( ! [X1: term > $o] :
          ( ! [X2: term] :
              ( ( var @ X2 )
             => ( X1 @ X2 ) )
         => ( ! [X2: term,X3: term] :
                ( ( X1 @ X2 )
               => ( ( X1 @ X3 )
                 => ( X1 @ ( ap @ X2 @ X3 ) ) ) )
           => ( ! [X2: term] :
                  ( ! [X3: term] :
                      ( ( X1 @ X3 )
                     => ( X1 @ ( sub @ X2 @ ( push @ X3 @ id ) ) ) )
                 => ( X1 @ ( lam @ X2 ) ) )
             => ( !! @ X1 ) ) ) ) ) ) ).

thf(def_substmonoid,definition,
    ( substmonoid
    = ( ~ ( ~ ( ! [X1: subst,X2: subst,X3: subst] :
                  ( ( comp @ ( comp @ X1 @ X2 ) @ X3 )
                  = ( comp @ X1 @ ( comp @ X2 @ X3 ) ) )
             => ~ ! [X1: subst] :
                    ( ( comp @ id @ X1 )
                    = X1 ) )
         => ~ ! [X1: subst] :
                ( ( comp @ X1 @ id )
                = X1 ) ) ) ) ).

thf(def_termmset,definition,
    ( termmset
    = ( ~ sP15 ) ) ).

thf(def_termmset_gthm,definition,
    ( termmset_gthm
    = ( axapp
     => ( axvarcons
       => ( axvarid
         => ( axabs
           => ( axclos
             => ( axidl
               => ( axshiftcons
                 => ( axassoc
                   => ( axmap
                     => ( axidr
                       => ( axvarshift
                         => ( axscons
                           => ( ulamvar1
                             => ( ulamvarsh
                               => ( ulamvarind
                                 => ( apinj1
                                   => ( apinj2
                                     => ( laminj
                                       => ( shinj
                                         => ( lamnotap
                                           => ( apnotvar
                                             => ( lamnotvar
                                               => ( induction
                                                 => ( pushprop
                                                   => ( induction2lem
                                                     => ( induction2
                                                       => ( substmonoid
                                                         => termmset ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ).

thf(thm,conjecture,
    sP25 ).

thf(h0,negated_conjecture,
    ~ sP25,
    inference(assume_negation,[status(cth)],[thm]) ).

thf(1,plain,
    ( ~ sP15
    | ~ sP6
    | ~ sP14 ),
    inference(prop_rule,[status(thm)],]) ).

thf(2,plain,
    ( sP12
    | sP15 ),
    inference(prop_rule,[status(thm)],]) ).

thf(3,plain,
    ( sP18
    | ~ sP12 ),
    inference(prop_rule,[status(thm)],]) ).

thf(4,plain,
    ( sP29
    | ~ sP18 ),
    inference(prop_rule,[status(thm)],]) ).

thf(5,plain,
    ( sP11
    | ~ sP29 ),
    inference(prop_rule,[status(thm)],]) ).

thf(6,plain,
    ( sP26
    | ~ sP11 ),
    inference(prop_rule,[status(thm)],]) ).

thf(7,plain,
    ( sP1
    | ~ sP26 ),
    inference(prop_rule,[status(thm)],]) ).

thf(8,plain,
    ( sP7
    | ~ sP1 ),
    inference(prop_rule,[status(thm)],]) ).

thf(9,plain,
    ( sP5
    | ~ sP7 ),
    inference(prop_rule,[status(thm)],]) ).

thf(10,plain,
    ( sP9
    | ~ sP5 ),
    inference(prop_rule,[status(thm)],]) ).

thf(11,plain,
    ( sP3
    | ~ sP9 ),
    inference(prop_rule,[status(thm)],]) ).

thf(12,plain,
    ( sP8
    | ~ sP3 ),
    inference(prop_rule,[status(thm)],]) ).

thf(13,plain,
    ( sP27
    | ~ sP8 ),
    inference(prop_rule,[status(thm)],]) ).

thf(14,plain,
    ( sP2
    | ~ sP27 ),
    inference(prop_rule,[status(thm)],]) ).

thf(15,plain,
    ( sP13
    | ~ sP2 ),
    inference(prop_rule,[status(thm)],]) ).

thf(16,plain,
    ( sP30
    | ~ sP13 ),
    inference(prop_rule,[status(thm)],]) ).

thf(17,plain,
    ( sP24
    | ~ sP30 ),
    inference(prop_rule,[status(thm)],]) ).

thf(18,plain,
    ( sP22
    | ~ sP24 ),
    inference(prop_rule,[status(thm)],]) ).

thf(19,plain,
    ( sP17
    | ~ sP22 ),
    inference(prop_rule,[status(thm)],]) ).

thf(20,plain,
    ( sP16
    | ~ sP17 ),
    inference(prop_rule,[status(thm)],]) ).

thf(21,plain,
    ( sP28
    | ~ sP16 ),
    inference(prop_rule,[status(thm)],]) ).

thf(22,plain,
    ( sP19
    | ~ sP28 ),
    inference(prop_rule,[status(thm)],]) ).

thf(23,plain,
    ( sP21
    | ~ sP19 ),
    inference(prop_rule,[status(thm)],]) ).

thf(24,plain,
    ( sP20
    | ~ sP21 ),
    inference(prop_rule,[status(thm)],]) ).

thf(25,plain,
    ( sP20
    | sP6 ),
    inference(prop_rule,[status(thm)],]) ).

thf(26,plain,
    ( sP4
    | ~ sP20 ),
    inference(prop_rule,[status(thm)],]) ).

thf(27,plain,
    ( sP10
    | ~ sP4 ),
    inference(prop_rule,[status(thm)],]) ).

thf(28,plain,
    ( sP10
    | sP14 ),
    inference(prop_rule,[status(thm)],]) ).

thf(29,plain,
    ( sP23
    | ~ sP10 ),
    inference(prop_rule,[status(thm)],]) ).

thf(30,plain,
    ( sP25
    | ~ sP23 ),
    inference(prop_rule,[status(thm)],]) ).

thf(31,plain,
    $false,
    inference(prop_unsat,[status(thm),assumptions([h0])],[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,h0]) ).

thf(0,theorem,
    sP25,
    inference(contra,[status(thm),contra(discharge,[h0])],[31,h0]) ).

%------------------------------------------------------------------------------
%----ORIGINAL SYSTEM OUTPUT
% 0.09/0.11  % Problem  : ALG255^1 : TPTP v8.1.0. Bugfixed v5.2.0.
% 0.09/0.12  % Command  : satallax -E eprover-ho -P picomus -M modes -p tstp -t %d %s
% 0.11/0.32  % Computer : n029.cluster.edu
% 0.11/0.32  % Model    : x86_64 x86_64
% 0.11/0.32  % CPU      : Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz
% 0.11/0.32  % Memory   : 8042.1875MB
% 0.11/0.32  % OS       : Linux 3.10.0-693.el7.x86_64
% 0.11/0.32  % CPULimit : 300
% 0.11/0.32  % WCLimit  : 600
% 0.11/0.32  % DateTime : Wed Jun  8 14:02:36 EDT 2022
% 0.11/0.32  % CPUTime  : 
% 0.18/0.45  % SZS status Theorem
% 0.18/0.45  % Mode: mode84:USE_SINE=true:SINE_TOLERANCE=1.2:SINE_GENERALITY_THRESHOLD=4:SINE_RANK_LIMIT=2.:SINE_DEPTH=0
% 0.18/0.45  % Inferences: 28
% 0.18/0.45  % SZS output start Proof
% See solution above
%------------------------------------------------------------------------------